package lanqiao;

public class l2017_02 {
    static int a[]={1,2,3,4,5,6,7,8,9};
    static int ans;

    public static void main(String arg[]){
        f(0);
        System.out.println(ans);
    }

    static boolean check(){
        if (a[0]+a[1]+a[3]+a[5] == a[0]+a[2]+a[4]+a[8] && a[5]+a[6]+a[7]+a[8] == a[0]+a[2]+a[4]+a[8])
            return true;
        return false;
    }

    static void f(int k){
        //出口在这里
        if (k == 9){//k=9表示前面1到9已经排好，这时一种排列生成
            //检查
            if(check())
                ans++;
        }
        //从k往后的每个数字都可以放在k位
        for (int i=k;i<9;++i){
            {int t=a[i];a[i]=a[k];a[k]=t;}//交换
            f(k+1);//递归
            {int t=a[i];a[i]=a[k];a[k]=t;}//回溯
        }
    }
}
